package modelo;

import java.io.File;
import java.util.Vector;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class LeerXML {

	public Vector<Cliente> leerXml(File xml) {
		Vector<Cliente> clientes = new Vector<Cliente>();
		try {
			Cliente cli = new Cliente();
			Vector<String> it = new Vector<String>();
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			Document doc = db.parse(xml);
			doc.getDocumentElement().normalize();
			NodeList nodeLst = doc.getElementsByTagName("cliente");

			for (int s = 0; s < nodeLst.getLength(); s++) {

				Node fstNode = nodeLst.item(s);

				if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

					Element fstElmnt = (Element) fstNode;
					NodeList fstNmElmntLst = fstElmnt.getElementsByTagName("nombre");
					Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
					NodeList fstNm = fstNmElmnt.getChildNodes();
					cli.setName(((Node) fstNm.item(0)).getNodeValue()); 
//Los items estan separados por "/" y dentro el item y la cantidad estan separados por ";"					
					NodeList lstNmElmntLst = fstElmnt.getElementsByTagName("items");
					Element lstNmElmnt = (Element) lstNmElmntLst.item(0);
					NodeList lstNm = lstNmElmnt.getChildNodes();
					String items = (String) lstNm.item(0).getNodeValue();
					String[] ite = items.split ("/");
					
					for(int i=0; i<ite.length; i++){
						it.add(ite[i]);
					}
					cli.setItems(it);
					clientes.addElement(cli);					
				}
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return clientes;
	}
}
